import util from '../../utils/util'

Component({
  /**
   * 组件的属性列表
   */
  properties: {
    inputAmount: {
      type: String,
      value: '',
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    KeyboardKeys: [{
        key: 1,
        keyboardDown: false
      },
      {
        key: 2,
        keyboardDown: false
      },
      {
        key: 3,
        keyboardDown: false
      },
      {
        key: 4,
        keyboardDown: false
      },
      {
        key: 5,
        keyboardDown: false
      },
      {
        key: 6,
        keyboardDown: false
      },
      {
        key: 7,
        keyboardDown: false
      },
      {
        key: 8,
        keyboardDown: false
      },
      {
        key: 9,
        keyboardDown: false
      },
      {
        key: 0,
        keyboardDown: false
      },
      {
        key: '.',
        keyboardDown: false
      }
    ],
    inputAmountClone: ''
  },

  /**
   * 组件的方法列表
   */
  methods: {
    /**
     * 按下键盘事件（触碰事件）
     */
    keyboardDown(e) {
      // 判断是否传入idx 键盘数组索引，如果是删除键的话没有索引
      if (e.currentTarget.dataset.idx != undefined) {
        // 获取到要修改的值，此方法只修改当前的，不修改全部
        let current = 'KeyboardKeys[' + e.currentTarget.dataset.idx + '].keyboardDown'; // setData当前修改的值，只重新setData一个值，不全部setData
        this.setData({
          [current]: true
        })
      }
      let _this = this;
      let keys = e.currentTarget.dataset.keys;
      let content = _this.data.inputAmountClone;
      switch (keys) {
        case '<':
          //如果点击删除键就删除字符串里的最后一个
          if (content == '0.') {
            content = '';
          } else {
            content = content.substr(0, content.length - 1);
          }
          break;
        default:
          content = util.amountControl((content += keys)).toString();
          break;
      }
      _this.setData({
        inputAmountClone: content,
      });
      this.triggerEvent('inputEvent', {
        inputAmount: content
      }, {});
    },

    /**
     * 手指抬起事件
     */
    keyboardUp(e) {
      // 获取KeyboardKeys当前指定的值
      let current = 'KeyboardKeys[' + e.currentTarget.dataset.idx + '].keyboardDown'; // setTimeout延迟，不加的话看不见效果，所以延迟一下在设置值
      setTimeout(() => {
        this.setData({
          [current]: false
        })
      }, 50);
    },
    /**
     * 付款事件
     */
    _payment() {
      this.triggerEvent('payEvent', {
        pay: 'pay'
      }, {});
    }
  }
})